1. Technical Field
The present invention generally relates to computer systems and in particular to the boot processes of computer systems. Still more particularly, the present invention relates to a method and system for completing a boot process of a computer system from an Internet Small Computer Systems Interface (iSCSI) device.
2. Description of the Related Art
Following power-on (or reboot) of a computer system, the system undergoes a boot process by which the system's firmware prepares the system for operation by identifying and setting up/initiating devices in the system. During the boot process, the firmware represents system hardware as a hierarchy of interconnected buses with attached devices. This hierarchical representation usually describes user configuration choices, and contains firmware device drivers for hardware devices and support routines for use by those drivers.
Additionally, the firmware prepares the computer system for operation by loading (booting) an operating system from some storage location/device. During normal operation of a standalone computer system, when a user issues a boot command to the computer, the computer responds to the boot command by attempting to retrieve the operating system files from the computer system's local memory. Configuration data files are also needed to configure the specific system with the hardware parameters necessary for the specific hardware configuration.
Some computer systems are connected via a network to a server or other network-accessible device. With standalone systems where the computer's storage is locally maintained when the power is turned off, the OS is typically stored in the computer system itself. In other systems with temporary (volatile) storage that is lost when the power is turned off (or even with systems having limited non-volatile storage capability), the computer is not able to retrieve the boot information from within the computer itself. In such cases, the computer system's firmware may be configured to send a request for the OS files via the network to a server acting as a boot server. Remote boot operations are becoming common in the world of distributed and network computing, particularly given the advantages of booting from a boot server, such as saving the limited memory resources of the computer system.
When new devices are created, existing computer systems are typically not able to boot a client program or operating system from these new devices unless the firmware provides some sort of support for this boot process. This inability of existing systems (absent specifically-provided firmware) to complete the boot process for new devices is particularly true when the new devices do not fit the characteristics of previously defined device types or standard device types typically present in a system. One such new device that is being utilized more frequently, but has not been provided direct firmware support, is an Internet Small Computer Systems Interface (iSCSI) device.
The iSCSI protocol allows a client system to use an iSCSI initiator to connect to remote targets such as disks and tape drives on an IP network for block level input/output (I/O). The SCSI architecture is based on a client/server model, where the client (“initiator”) is typically a host system, such as a file server, that issues requests to read or write data and the server (“target”) is a resource such as a disk array that responds to client requests. The server (target) comprises one or more logical units that are assigned identifying numbers, or logical unit numbers (LUNs). Those skilled in the art are familiar with iSCSI protocol and its general implementation. Further description of that protocol may be obtained at RFC 3720: Internet Small Computer Systems Interface (iSCSI), published in the IETF (Internet Engineering Task Force) RFC repository.
Because iSCSI protocol has not been fully integrated into existing system functions, such as firmware-directed remote boot operations, conventional systems utilize several existing discovery protocols to obtain information about the iSCSI client and target from well-known servers. A description of these existing discovery protocols is provided within an article titled “Bootstrapping Clients using the iSCSI Protocol,” published online by IETF RFC 4173 at website “www.ietf.org/rfc/rfc4173.txt.” However, there is currently no efficient way to provide a directed boot process for booting an operating system from an iSCSI device (target). The present invention thus recognizes that a need exists for an iSCSI client to efficiently boot its operating system from an iSCSI device (target) without requiring a complete redesign/revamp of the existing remote booting processes and discovery protocols.